第 2 步 - 为其他地区创建地区包
地区包是只包含特定地区的资源的 kzb 文件。 使用 Kanzi Engine API 可以在设置地区时加载该地区使用的应用程序资源。这样可以减少应用程序中 kzb 文件的大小。
在本教程的这一步骤中,您首先准备用于加载其他地区的 Kanzi Studio 工程,然后创建Japanese、Chinese 和Korean 地区的样式和地区包。
准备用于加载其他地区的 Kanzi Studio 工程
在本节中,您将学习修改在教程的上一步创建的 Kanzi Studio 工程。导入包含其他地区的资源的 .po 文件并准备工程,使LocaleSelector 中的LocaleButton 预设件的实例使用自定义属性控制应用程序的地区。
要准备用于加载其他地区的工程:
- 在素材库 (Library) > 本地化 (Localization) 中右键点击本地化表(主)(Localization Table, Main) 本地化表,选择手动导入本地化表 (Import Localization Table Manually),转到 <KanziWorkspace>/Tutorials/Localization/Assets/Text 并导入包含Japanese、Chinese和Korean地区文本字符串的 ja-JP.po、zh-ZH.po 和 ko-KR.po 文件。
Kanzi Studio 会创建 .po 文件中指定的地区,并将翻译从 .po 文件添加到本地化表。
- 在素材库 (Library) 中,按下 Alt 并右键点击属性类型 (Property Types) 并选择 属性类型 (Property Type)。
- 在新建属性类型 (New Property Type) 窗口中设置:
- 名称 (Name) 为Localization.LocaleID
- 类别 (Category) 为LocaleButton
- 数据类型 (Data Type) 为文本 (Text)
- 编辑器 (Editor) 为地区选择器 (Locale selector)
点击保存 (Save)。
您使用自定义属性类型通过LocaleSelector 节点中的按钮设置地区。
- 在预设件 (Prefabs) 中选择LocaleButton 预设件,并在属性 (Properties) 中添加Localization.LocaleID 属性。
- 在 LocaleButton 预设件资源目录中,创建一个指向 屏幕 (Screen) 节点的 别名 (Alias),以便能够从 LocaleButton 预设件访问 屏幕 (Screen) 节点。
- 在 预设件 (Prefabs) 中选择 LocaleButton 预设件,在 字典 (Dictionaries) 中点击 + 添加资源 (+ Add Resource),选择 创建 (Create) > 别名 (Alias),然后将 别名 (Alias) 的名称设置为 Screen。
- 在 字典 (Dictionaries) 点击别名旁的单元格,点击 < Relative >,选择 屏幕 (Screen),并按 Enter。
- 在预设件 (Prefabs) 中选择LocaleButton,在节点组件 (Node Components) 中添加切换按钮: 打开 (Toggle Button: Toggled On) 触发器,添加设置属性 (Set Property) 动作并设置:
- 目标项 (Target Item) 为#Screen
- 目标属性 (Target Property) 为地区 (Locale)
- 起始值 (Value From) 为属性 (Property)
- 源项 (Source Item) 为 <Relative> 和 .
通过这种方式,您可以从用于设置地区的预设件实例获取屏幕 (Screen) 节点地区 (Locale) 属性的值。 - 源属性 (Source Property) 为Localization.LocaleID
- 源属性特性 (Source Property Attribute) 为整体属性 (Whole property)
点击保存 (Save)。
- 在工程 (Project) 的LocaleSelector 节点中为第一个LocaleButton 预设件实例:
- 在属性 (Properties) 中添加Localization.LocaleID 属性并将其设为要使用按钮设置的地区。
例如,要设为默认地区,对于English,选择不因语言而异(不因国家而异) (Invariant Language (Invariant Country) ()) 值。
- 在节点组件 (Node Components) 中右键点击切换按钮: 打开 (Toggle Button: Toggled On) 触发器并选择移除 (Remove)。
通过这种方式,您可以将定义每个预设件实例中切换地区的触发器,替换为在预设件中定义的从每个预设件实例的Localization.LocaleID 属性获取地区值的触发器。
- 对 LocaleSelector 中LocaleButton 的每个实例重复上一步骤:
- 对设置Finnish 地区的 LocaleButton 预设件实例,设置Localization.LocaleID 属性为芬兰语(芬兰) (fi-FI) (Finnish (Finland) (fi-FI))
- 对设置Spanish 地区的LocaleButton预设件实例,设置Localization.LocaleID 属性为Spanish (Spain) (es-ES)。
- 在工程 (Project) 中按下 Alt 并右键点击 LocaleSelector 节点并选择别名 (Alias)。
您可使用别名通过 Kanzi Engine API 访问LocaleSelector 节点并添加按钮,以从您在这一步骤的下一节准备的地区包加载地区。
为其他地区创建样式
在本节中,您将学习为使用包含Japanese、Chinese 和Korean 字形的字体的其他地区创建样式。
要为其他地区创建样式:
- 创建设置每个地区的字体的样式:
- 选择 > > 导入字体 (Import Fonts)并从 <KanziWorkspace>/Tutorials/Localization/Assets/Fonts 导入含有Japanese、Chinese 和Korean 字形的字体。请参阅导入字体。
例如,导入notosanscjkjp-regular.otf 用于Japanese、notosanscjkkr-regular.otf用于Korean 和notosanscjksc-regular.otf 用于Chinese。
确保使用的字体包含 Kanzi 应用程序中想要呈现的文本需要的所有字形。
- 在本地化编辑器 (Localization Editor) 中点击+ 添加资源 (+ Add Resource),选择创建 (Create) > 已命名样式 (Named Style) 并命名为 LocaleStyle。
- 在素材库 (Library) > 样式 (Styles) 中右键点击LocaleStyle,选择重复 (Duplicate),并将样式命名为使用它的地区。
例如,命名Japanese 地区的样式为LocaleStyle-jp、Chinese 地区的样式为LocaleStyle-zh以及Korean 的样式为LocaleStyle-kr。
- 在素材库 (Library) 中选择一个样式,并在属性 (Properties) 中添加和设置字体 (Font) 属性为含有该地区所用字形的字体。
例如,将 Korean 地区设置的 字体 (Font) 属性设置为 notosanscjkkr-regular.otf 字体。对于默认LocaleStyle,设置字体 (Font) 为notosans-regular.ttf。
- 在Localization Table 中,在您要应用所创建样式的每个地区的列中双击LocaleStyle 单元格并选择要应用到该地区的样式。
例如,对于Japanese 地区选择LocaleStyle-jp。Finnish 和Spanish 地区使用LocaleStyle,使用默认字体。
- 在工程 (Project) 中,选择RootPage 节点,在属性 (Properties) 中移除字体 (Font) 属性,添加样式 (Style) 属性,将其设为<ResourceID>,资源 ID 设为LocaleStyle。
您需要移除RootPage 中的字体 (Font) 属性,因为在本地节点中设置的属性值重写了样式中设置的值。
- 在预设件 (Prefabs) > LocaleButton中选择 2D 文本块 (Text Block 2D),在字体 (Font) 属性旁的属性 (Properties) 中点击 并命名属性Localization.LocaleButtonFont。
通过这种方式,您在使用具有不同字形的字体的地区之间导航时,可以为每个地区名称使用正确的字体。
- 选择 预设件 (Prefabs) > LocaleButton 并在属性 (Properties) 中移除Localization.LocaleButtonFont 属性。
- 在工程 (Project) 中选择各预设件实例,在属性 (Properties) 中添加Localization.LocaleButtonFont 属性,将其设为notosans-regular.ttf。
创建地区包
地区包是只包含特定地区的资源的 kzb 文件。
在本节中,向工程添加Japanese、Chinese 和Korean 地区的本地化资源并创建地区包。在下一节中,您将学习使用 Kanzi Engine API 加载地区包。
在 <KanziWorkspace>/Tutorials/Localization/Assets/Text 目录中您可以找到包含在本教程中用于本地化为Japanese、Chinese 和Korean Kanzi Studio 工程中使用的所有文本字符串的 .po 文件。
要创建一个地区包:
- 创建用于显示LocaleButton 节点中地区名称的文本资源:
- 在素材库 (Library) > 本地化 (Localization) 中双击本地化表(主)(Localization Table, Main) 本地化表,在本地化编辑器 (Localization Editor) 中打开。
- 点击+ 添加资源 (+ Add Resource),选择创建 (Create) > 文本 (Text),并命名新文本资源LocaleDisplayName。
下一步,使用 Kanzi Engine API 设置文本资源,在用于加载该地区的LocaleButton 中显示地区名称。
- 在从其自己的地区包中加载资源的每个地区的列中,点击 LocaleDisplayName 单元格,输入要在每个地区的 LocaleButton 中显示的文本并按下 Enter 键。
由于您要让地区的用户找到其地区,所以使用每个地区的本名。例如,对Japanese 使用日本語,对Korean 使用 한국어,对Chinese使用中文。
- 在Localization Table 中设置要用于Japanese、Chinese 和Korean 地区的图像。
例如,对于Japanese 地区使用 Image04,对于Korean 地区使用 Image05,对于Chinese地区使用 Image06。
- 在Localization Table 中点击Japanese、Chinese 和Korean 地区的名称旁的 。
这样您可以标记要为其创建地区包 kzb 文件的地区,文件仅包含该地区使用的资源。Kanzi Studio 不会将本地化表中标记为地区包的地区的资源导出到主 kzb 文件。
-
在Kanzi Studio 中选择 > 导出 (Export) > 导出 KZB (Export KZB)。该命令:
- 为您在本地化表中标记为地区包的每个地区创建一个 kzb 文件。Kanzi Studio 导出地区包时,会以其所含资源的地区命名 kzb 文件。每个地区包文件仅包含该地区使用的资源。
- 创建包含整个 Kanzi Studio 工程的主要 kzb 文件,在本地化表中标记为地区包的地区资源除外。
- 将地区包 kzb 文件存储在 <ProjectName>/Application/bin/Locale_packs 或您在 > 的二进制导出目录 (Binary Export Directory) 属性中指定位置中的 Locale_packs 目录中。
< 上一步
下一步 >
另请参阅
本地化应用程序
使用地区
使用别名
使用样式
导入字体
属性类型
打开导航